package com.desire.homework;

import java.util.Scanner;

/**
 * @author desire
 */
public class _09_输出指定年月的天数 {
    /**
     * switch case 的 yield方法
     *
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份: (eg:2018)");
        int year = sc.nextInt();
        System.out.println("请输入月份: (eg:12)");
        int month = sc.nextInt();
        int days = switch (month) {
            case 2 -> {
                yield(year % 400 == 0 || year % 4 == 0 && year % 100 != 0 ? 29 : 28);
            }
            case 4, 6, 9, 11 -> 30;
            default -> 31;
        };
        System.out.printf("%d年 %d月 %d 天", year, month, days);
    }

    /**
     * switch case 的 表达式写法
     *
     * @param args
     */
    public static void main2(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份: (eg:2018)");
        int year = sc.nextInt();
        System.out.println("请输入月份: (eg:12)");
        int month = sc.nextInt();
        int days = switch (month) {
            case 2 -> year % 400 == 0 || year % 4 == 0 && year % 100 != 0 ? 29 : 28;
            case 4, 6, 9, 11 -> 30;
            default -> 31;
        };
        System.out.printf("%d 年 %d 月, %d天", year, month, days);
    }

    /**
     * switch case 判断什么年多少天
     *
     * @param args
     */
    public static void main1(String[] args) {
        //1.接收参数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份(eg: 2022): ");
        int year = sc.nextInt();
        System.out.println("请输入月份(eg: 10): ");
        int month = sc.nextInt();
        //2.  判断是否是闰年, 1 3 5 7 8 10 12 是31天  4 6 9 11 是30天  2 闰年29天 平年 28天
        switch (month) {
            case 2:
                if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
                    System.out.printf("%d 年 %d 月, 闰年 29天", year, month);
                } else {
                    System.out.printf("%d 年 %d 月, 平年 28天", year, month);
                }
               /*   // LocalDate的一个方法isLeapYear()就可以判断当前年是否是闰年
                    LocalDate now = LocalDate.of(year, month, 1);
                    days = now.isLeapYear() ? 29 : 28;
                */

                break;
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.printf("%d 年 %d 月, 平年 31天", year, month);
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.printf("%d 年 %d 月, 平年 30天", year, month);
                break;
            default:
                System.out.println("输入有误!");
        }
    }
}

